\chapter{Herramientas de desarrollo}

\section{Plataforma de desarrollo}

	\paragraph{Sistema operativo:} Se utilizará CentOS 6.3\footnote{Disponible en \url{http://www.centos.org}.}, pues es el sistema operativo que se emplea en la universidad. Así disminuimos las probabilidades de encontrarnos con errores de compatibilidad.

	\paragraph{Servidor Web:} Se instalará en el sistema el servidor Apache 2.2.15, junto con PHP 5.3.3.

	\paragraph{Base de datos:} Se utilizará el servidor PostgreSQL 8.4.20 para gestionar la base de datos. PostgreSQL es uno de los servidores disponibles en la universidad, lo cual es una de las razones de nuestra elección.

\section{Framework}

	Se realizará el desarrollo con el Framework Yii\footnote{Disponible en \url{http://www.yiiframework.com}.} 1.1.14, basado en PHP.
	Será beneficioso para nosotros ya que posee una vasta cantidad de módulos preparados y ajustables a nuestros requerimientos lo cual, ayudará a que la relación tiempo necesidad del cliente sea lo más lineal posible.

	También lo elegimos por su popularidad entre programadores de aplicaciones basadas en Web, lo cual nos facilita tener mayor soporte en caso de dificultades a la hora del desarrollo.

	\subsection{Descripción}

		Comparando con otros frameworks basados en PHP, Yii nos ofrece mayor velocidad al cargar las páginas y mayor capacidad de obtención de módulos y soporte que otros frameworks de la misma categoría. Entre los programadores que utilizan frameworks es considerado uno de los mejores para PHP.

		\paragraph{Relación con la base de datos:} Yii nos ofrece la capacidad de conectarnos con la base de datos e interactuar con ella de forma muy sencilla y práctica, para nuestro trabajo especifico necesitamos facilidad y rapidez a la hora de programar ya que el uso de la base de datos es imprescindible para nuestros objetivos.

		\paragraph{Soporte:} Cuenta con innumerables foros, manuales de apoyo, documentación audiovisuales y disponibilidad en diferentes idiomas.

		\paragraph{Generación de código:} La pulcritud y facilidad a la hora de generar código ayudan a su utilización.

	\paragraph{Ventajas}

		\begin{itemize}
			\item Es fácil de aprender.
			\item Las páginas se cargan rápidamente.
			\item Facilita la interacción con las bases de datos, automatizando las operaciones CRUD.
			\item Tiene una gran comunidad de soporte a programadores.
			\item Hay mucha documentación sobre el framework.
		\end{itemize}

	\paragraph{Desventajas}

		\begin{itemize}
			\item Puede cambiar la implementaicón del framework con el paso del tiempo, lo cual puede requerir un significativo trabajo de reaprendizaje al usar nuevas versiones.
			\item Al ser público el código, cualquier persona puede estudiar las vulnerabilidades del framework para comprometer un sistema que lo use.
			\item Se aprende el framework, no el lenguaje.
		\end{itemize}

\section{Sistema de versionamiento}

	Se empleará Mercurial\footnote{Disponible en \url{http://mercurial.selenic.com/downloads}.} como sistema de versionamiento. Fue elegido debido a las facilidades que ofrece la herramienta TortoiseHg\footnote{Puede instalarse en conjunto con Mercurial y está disponible en el mismo sitio.}, la cual ya conoce uno de los integrantes del grupo.

\section{Estándares de codificación}

	Consideramos que el estándar de codificación PEAR\footnote{Véase en \url{http://pear.php.net/manual/en/standards.php}.} ofrece una documentación concisa y completa. Además, es uno de los estándares de codificación más usados por la comunidad PHP.